home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Interfaces / Universal Interfaces 2.0a3 / Universal AIncludes / Sound.a < prev    next >
Encoding:
Text File  |  1994-11-11  |  15.9 KB  |  696 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Sound.a
  3. ;
  4. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  5. ;                All rights reserved.
  6. ;
  7. ;    Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8. ;
  9. ;    Bugs?:        If you find a problem with this file, send the file and version
  10. ;                information (from above) and the problem description to:
  11. ;
  12. ;                    Internet:    apple.bugs@applelink.apple.com
  13. ;                    AppleLink:    APPLE.BUGS
  14. ;
  15. ;
  16.  
  17.     IF &TYPE('__SOUND__') = 'UNDEFINED' THEN
  18. __SOUND__ SET 1
  19.  
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24. ;        include 'ConditionalMacros.a'                                ;
  25.  
  26.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  27.     include 'MixedMode.a'
  28.     ENDIF
  29. ;
  30. ;Interface for Sound Driver, !!! OBSOLETE and NOT SUPPORTED !!!
  31. ;
  32. ;These items are no longer defined, but appear here so that someone
  33. ;searching the interfaces might find them. If you are using one of these
  34. ;items, you must change your code to support the Sound Manager.
  35. ;
  36. ;    swMode, ftMode, ffMode
  37. ;    FreeWave, FFSynthRec, Tone, SWSynthRec, Wave, FTSoundRec
  38. ;    SndCompletionProcPtr
  39. ;    StartSound, StopSound, SoundDone
  40. ;
  41.  
  42. soundListRsrc                    EQU        'snd '                ;Resource type used by Sound Manager
  43. rate44khz                        EQU        $AC440000            ;44100.00000 in fixed-point
  44. rate22050hz                        EQU        $56220000            ;22050.00000 in fixed-point
  45. rate22khz                        EQU        $56EE8BA3            ;22254.54545 in fixed-point
  46. rate11khz                        EQU        $2B7745D1            ;11127.27273 in fixed-point
  47. rate11025hz                        EQU        $2B110000            ;11025.00000 in fixed-point
  48. ;synthesizer numbers for SndNewChannel
  49. squareWaveSynth                    EQU        1                    ;square wave synthesizer
  50. waveTableSynth                    EQU        3                    ;wave table synthesizer
  51. sampledSynth                    EQU        5                    ;sampled sound synthesizer
  52. ;old Sound Manager MACE synthesizer numbers
  53. MACE3snthID                        EQU        11
  54. MACE6snthID                        EQU        13
  55. kMiddleC                        EQU        60                    ;MIDI note value for middle C
  56. kSimpleBeepID                    EQU        1                    ;reserved resource ID for Simple Beep
  57. kFullVolume                        EQU        $0100                ;1.0, setting for full hardware output volume
  58. kNoVolume                        EQU        0                    ;setting for no sound volume
  59. ;command numbers for SndDoCommand and SndDoImmediate
  60. nullCmd                            EQU        0
  61. initCmd                            EQU        1
  62. freeCmd                            EQU        2
  63. quietCmd                        EQU        3
  64. flushCmd                        EQU        4
  65. reInitCmd                        EQU        5
  66. waitCmd                            EQU        10
  67. pauseCmd                        EQU        11
  68. resumeCmd                        EQU        12
  69. callBackCmd                        EQU        13
  70.  
  71. syncCmd                            EQU        14
  72. availableCmd                    EQU        24
  73. versionCmd                        EQU        25
  74. totalLoadCmd                    EQU        26
  75. loadCmd                            EQU        27
  76. freqDurationCmd                    EQU        40
  77. restCmd                            EQU        41
  78. freqCmd                            EQU        42
  79. ampCmd                            EQU        43
  80. timbreCmd                        EQU        44
  81. getAmpCmd                        EQU        45
  82. volumeCmd                        EQU        46                    ;sound manager 3.0 or later only
  83. getVolumeCmd                    EQU        47                    ;sound manager 3.0 or later only
  84. waveTableCmd                    EQU        60
  85. phaseCmd                        EQU        61
  86.  
  87. soundCmd                        EQU        80
  88. bufferCmd                        EQU        81
  89. rateCmd                            EQU        82
  90. continueCmd                        EQU        83
  91. doubleBufferCmd                    EQU        84
  92. getRateCmd                        EQU        85
  93. rateMultiplierCmd                EQU        86
  94. getRateMultiplierCmd            EQU        87
  95. sizeCmd                            EQU        90
  96. convertCmd                        EQU        91
  97. stdQLength                        EQU        128
  98. dataOffsetFlag                    EQU        $8000
  99.  
  100. ;channel initialization parameters
  101.     IF OLDROUTINENAMES  THEN
  102. waveInitChannelMask                EQU        $07
  103. waveInitChannel0                EQU        $04                    ;wave table only, Sound Manager 2.0 and earlier
  104. waveInitChannel1                EQU        $05                    ;wave table only, Sound Manager 2.0 and earlier
  105. waveInitChannel2                EQU        $06                    ;wave table only, Sound Manager 2.0 and earlier
  106. waveInitChannel3                EQU        $07                    ;wave table only, Sound Manager 2.0 and earlier
  107. initChan0                        EQU        waveInitChannel0    ;obsolete spelling
  108. initChan1                        EQU        waveInitChannel1    ;obsolete spelling
  109. initChan2                        EQU        waveInitChannel2    ;obsolete spelling
  110. initChan3                        EQU        waveInitChannel3    ;obsolete spelling
  111.  
  112.     ENDIF
  113. initChanLeft                    EQU        $0002                ;left stereo channel
  114. initChanRight                    EQU        $0003                ;right stereo channel
  115. initNoInterp                    EQU        $0004                ;no linear interpolation
  116. initNoDrop                        EQU        $0008                ;no drop-sample conversion
  117. initMono                        EQU        $0080                ;monophonic channel
  118. initStereo                        EQU        $00C0                ;stereo channel
  119. initMACE3                        EQU        $0300                ;MACE 3:1
  120. initMACE6                        EQU        $0400                ;MACE 6:1
  121. initPanMask                        EQU        $0003                ;mask for right/left pan values
  122. initSRateMask                    EQU        $0030                ;mask for sample rate values
  123. initStereoMask                    EQU        $00C0                ;mask for mono/stereo values
  124. initCompMask                    EQU        $FF00                ;mask for compression IDs
  125. kUseOptionalOutputDevice        EQU        -1                    ;only for Sound Manager 3.0 or later
  126. notCompressed                    EQU        0                    ;compression ID's
  127. fixedCompression                EQU        -1                    ;compression ID for fixed-sized compression
  128. variableCompression                EQU        -2                    ;compression ID for variable-sized compression
  129. twoToOne                        EQU        1
  130. eightToThree                    EQU        2
  131. threeToOne                        EQU        3
  132. sixToOne                        EQU        4
  133.  
  134. outsideCmpSH                    EQU        0                    ;MACE constants
  135. insideCmpSH                        EQU        1
  136. aceSuccess                        EQU        0
  137. aceMemFull                        EQU        1
  138. aceNilBlock                        EQU        2
  139. aceBadComp                        EQU        3
  140. aceBadEncode                    EQU        4
  141. aceBadDest                        EQU        5
  142. aceBadCmd                        EQU        6
  143. sixToOnePacketSize                EQU        8
  144. threeToOnePacketSize            EQU        16
  145. stateBlockSize                    EQU        64
  146. leftOverBlockSize                EQU        32
  147. firstSoundFormat                EQU        $0001                ;general sound format
  148. secondSoundFormat                EQU        $0002                ;special sampled sound format (HyperCard)
  149. dbBufferReady                    EQU        $00000001            ;double buffer is filled
  150. dbLastBuffer                    EQU        $00000004            ;last double buffer to play
  151. sysBeepDisable                    EQU        $0000                ;SysBeep() enable flags
  152. sysBeepEnable                    EQU        $0001
  153. unitTypeNoSelection                EQU        $FFFF                ;unitTypes for AudioSelection.unitType
  154. unitTypeSeconds                    EQU        $0000
  155.  
  156. ; unsigned fixed-point number 
  157. SndCommand                 RECORD    0
  158. cmd                         ds.w    1
  159. param1                     ds.w    1
  160. param2                     ds.l    1
  161. sizeof                     EQU    8
  162.                         ENDR
  163.  
  164. SndChannel                 RECORD    0
  165. nextChan                 ds.l    1
  166. firstMod                 ds.l    1                                    ; reserved for the Sound Manager 
  167. callBack                 ds.l    1
  168. userInfo                 ds.l    1
  169. wait                     ds.l    1                                    ; The following is for internal Sound Manager use only.
  170. cmdInProgress             ds        SndCommand
  171. flags                     ds.w    1
  172. qLength                     ds.w    1
  173. qHead                     ds.w    1
  174. qTail                     ds.w    1
  175. queue                     ds        SndCommand
  176. sizeof                     EQU    44
  177.                         ENDR
  178.  
  179. ;MACE structures
  180. StateBlock                 RECORD    0
  181. stateVar                 ds.w    1
  182. sizeof                     EQU    2
  183.                         ENDR
  184.  
  185. LeftOverBlock             RECORD    0
  186. count                     ds.l    1
  187. sampleArea                 ds.b    1
  188. sizeof                     EQU    6
  189.                         ENDR
  190.  
  191. ModRef                     RECORD    0
  192. modNumber                 ds.w    1
  193. modInit                     ds.l    1
  194. sizeof                     EQU    6
  195.                         ENDR
  196.  
  197. SndListResource         RECORD    0
  198. format                     ds.w    1
  199. numModifiers             ds.w    1
  200. modifierPart             ds        ModRef                                ;This is a variable length array
  201. numCommands                 ds.w    1
  202. commandPart                 ds        SndCommand                            ;This is a variable length array
  203. dataPart                 ds.b    1                                    ;This is a variable length array
  204. sizeof                     EQU    22
  205.                         ENDR
  206.  
  207. ;HyperCard sound resource format
  208. Snd2ListResource         RECORD    0
  209. format                     ds.w    1
  210. refCount                 ds.w    1
  211. numCommands                 ds.w    1
  212. commandPart                 ds        SndCommand                            ;This is a variable length array
  213. dataPart                 ds.b    1                                    ;This is a variable length array
  214. sizeof                     EQU    16
  215.                         ENDR
  216.  
  217. SoundHeader             RECORD    0
  218. samplePtr                 ds.l    1                                    ;if NIL then samples are in sampleArea
  219. length                     ds.l    1                                    ;length of sound in bytes
  220. sampleRate                 ds.l    1                                    ;sample rate for this sound
  221. loopStart                 ds.l    1                                    ;start of looping portion
  222. loopEnd                     ds.l    1                                    ;end of looping portion
  223. encode                     ds.b    1                                    ;header encoding
  224. baseFrequency             ds.b    1                                    ;baseFrequency value
  225. sampleArea                 ds.b    1                                    ;space for when samples follow directly
  226. sizeof                     EQU    24
  227.                         ENDR
  228.  
  229. CmpSoundHeader             RECORD    0
  230. samplePtr                 ds.l    1                                    ;if nil then samples are in sample area
  231. numChannels                 ds.l    1                                    ;number of channels i.e. mono = 1
  232. sampleRate                 ds.l    1                                    ;sample rate in Apples Fixed point representation
  233. loopStart                 ds.l    1                                    ;loopStart of sound before compression
  234. loopEnd                     ds.l    1                                    ;loopEnd of sound before compression
  235. encode                     ds.b    1                                    ;data structure used , stdSH, extSH, or cmpSH
  236. baseFrequency             ds.b    1                                    ;same meaning as regular SoundHeader
  237. numFrames                 ds.l    1                                    ;length in frames ( packetFrames or sampleFrames )
  238. AIFFSampleRate             ds.w    5                                    ;IEEE sample rate
  239. markerChunk                 ds.l    1                                    ;sync track
  240. format                     ds.l    1                                    ;data format type, was futureUse1
  241. futureUse2                 ds.l    1                                    ;reserved by Apple
  242. stateVars                 ds.l    1                                    ;pointer to State Block
  243. leftOverSamples             ds.l    1                                    ;used to save truncated samples between compression calls
  244. compressionID             ds.w    1                                    ;0 means no compression, non zero means compressionID
  245. packetSize                 ds.w    1                                    ;number of bits in compressed sample packet
  246. snthID                     ds.w    1                                    ;resource ID of Sound Manager snth that contains NRT C/E
  247. sampleSize                 ds.w    1                                    ;number of bits in non-compressed sample
  248. sampleArea                 ds.b    1                                    ;space for when samples follow directly
  249. sizeof                     EQU    66
  250.                         ENDR
  251.  
  252. ExtSoundHeader             RECORD    0
  253. samplePtr                 ds.l    1                                    ;if nil then samples are in sample area
  254. numChannels                 ds.l    1                                    ;number of channels,  ie mono = 1
  255. sampleRate                 ds.l    1                                    ;sample rate in Apples Fixed point representation
  256. loopStart                 ds.l    1                                    ;same meaning as regular SoundHeader
  257. loopEnd                     ds.l    1                                    ;same meaning as regular SoundHeader
  258. encode                     ds.b    1                                    ;data structure used , stdSH, extSH, or cmpSH
  259. baseFrequency             ds.b    1                                    ;same meaning as regular SoundHeader
  260. numFrames                 ds.l    1                                    ;length in total number of frames
  261. AIFFSampleRate             ds.w    5                                    ;IEEE sample rate
  262. markerChunk                 ds.l    1                                    ;sync track
  263. instrumentChunks         ds.l    1                                    ;AIFF instrument chunks
  264. AESRecording             ds.l    1
  265. sampleSize                 ds.w    1                                    ;number of bits in sample
  266. futureUse1                 ds.w    1                                    ;reserved by Apple
  267. futureUse2                 ds.l    1                                    ;reserved by Apple
  268. futureUse3                 ds.l    1                                    ;reserved by Apple
  269. futureUse4                 ds.l    1                                    ;reserved by Apple
  270. sampleArea                 ds.b    1                                    ;space for when samples follow directly
  271. sizeof                     EQU    66
  272.                         ENDR
  273.  
  274. ConversionBlock         RECORD    0
  275. destination                 ds.w    1
  276. unused                     ds.w    1
  277. inputPtr                 ds.l    1
  278. outputPtr                 ds.l    1
  279. sizeof                     EQU    12
  280.                         ENDR
  281.  
  282. SMStatus                 RECORD    0
  283. smMaxCPULoad             ds.w    1
  284. smNumChannels             ds.w    1
  285. smCurCPULoad             ds.w    1
  286. sizeof                     EQU    6
  287.                         ENDR
  288.  
  289. SCStatus                 RECORD    0
  290. scStartTime                 ds.l    1
  291. scEndTime                 ds.l    1
  292. scCurrentTime             ds.l    1
  293. scChannelBusy             ds.b    1
  294. scChannelDisposed         ds.b    1
  295. scChannelPaused             ds.b    1
  296. scUnused                 ds.b    1
  297. scChannelAttributes         ds.l    1
  298. scCPULoad                 ds.l    1
  299. sizeof                     EQU    24
  300.                         ENDR
  301.  
  302. AudioSelection             RECORD    0
  303. unitType                 ds.l    1
  304. selStart                 ds.l    1
  305. selEnd                     ds.l    1
  306. sizeof                     EQU    12
  307.                         ENDR
  308.  
  309. SndDoubleBuffer         RECORD    0
  310. dbNumFrames                 ds.l    1
  311. dbFlags                     ds.l    1
  312. dbUserInfo                 ds.l    2
  313. dbSoundData                 ds.b    1
  314. sizeof                     EQU    18
  315.                         ENDR
  316.  
  317. SndDoubleBufferHeader     RECORD    0
  318. dbhNumChannels             ds.w    1
  319. dbhSampleSize             ds.w    1
  320. dbhCompressionID         ds.w    1
  321. dbhPacketSize             ds.w    1
  322. dbhSampleRate             ds.l    1
  323. dbhBufferPtr             ds.l    2
  324. dbhDoubleBack             ds.l    1
  325. sizeof                     EQU    24
  326.                         ENDR
  327.  
  328. SndDoubleBufferHeader2     RECORD    0
  329. dbhNumChannels             ds.w    1
  330. dbhSampleSize             ds.w    1
  331. dbhCompressionID         ds.w    1
  332. dbhPacketSize             ds.w    1
  333. dbhSampleRate             ds.l    1
  334. dbhBufferPtr             ds.l    2
  335. dbhDoubleBack             ds.l    1
  336. dbhFormat                 ds.l    1
  337. sizeof                     EQU    28
  338.                         ENDR
  339.  
  340. SoundInfoList             RECORD    0
  341. count                     ds.w    1
  342. infoHandle                 ds.l    1
  343. sizeof                     EQU    6
  344.                         ENDR
  345.  
  346. CompressionInfo         RECORD    0
  347. recordSize                 ds.l    1
  348. format                     ds.l    1
  349. compressionID             ds.w    1
  350. samplesPerPacket         ds.w    1
  351. bytesPerPacket             ds.w    1
  352. bytesPerFrame             ds.w    1
  353. bytesPerSample             ds.w    1
  354. futureUse1                 ds.w    1
  355. sizeof                     EQU    20
  356.                         ENDR
  357.  
  358. ; These two routines for Get/SetSoundVol should no longer be used.
  359. ; They were for old Apple Sound Chip machines, and do not support the DSP or PowerMacs.
  360. ; Use Get/SetDefaultOutputVolume instead, if you must change the user's machine.
  361.     IF OLDROUTINENAMES  ** ¬ GENERATINGCFM  THEN
  362.     IF GENERATING68K THEN
  363.         Macro
  364.         _GetSoundVol
  365.             dc.w     $4218
  366.             dc.w     $10B8
  367.             dc.w     $0260
  368.         EndM
  369.     ELSE
  370.         IMPORT    GetSoundVol
  371.     ENDIF
  372.  
  373.     ENDIF
  374.     IF GENERATING68K THEN
  375.         _SndDoCommand:    OPWORD    $A803
  376.     ELSE
  377.         IMPORT    SndDoCommand
  378.     ENDIF
  379.  
  380.     IF GENERATING68K THEN
  381.         _SndDoImmediate:    OPWORD    $A804
  382.     ELSE
  383.         IMPORT    SndDoImmediate
  384.     ENDIF
  385.  
  386.     IF GENERATING68K THEN
  387.         _SndNewChannel:    OPWORD    $A807
  388.     ELSE
  389.         IMPORT    SndNewChannel
  390.     ENDIF
  391.  
  392.     IF GENERATING68K THEN
  393.         _SndDisposeChannel:    OPWORD    $A801
  394.     ELSE
  395.         IMPORT    SndDisposeChannel
  396.     ENDIF
  397.  
  398.     IF GENERATING68K THEN
  399.         _SndPlay:    OPWORD    $A805
  400.     ELSE
  401.         IMPORT    SndPlay
  402.     ENDIF
  403.  
  404.     IF GENERATING68K THEN
  405.         _SndAddModifier:    OPWORD    $A802
  406.     ELSE
  407.         IMPORT    SndAddModifier
  408.     ENDIF
  409.  
  410.     IF GENERATING68K THEN
  411.         _SndControl:    OPWORD    $A806
  412.     ELSE
  413.         IMPORT    SndControl
  414.     ENDIF
  415.  
  416. ; Sound Manager 2.0 and later, uses _SoundDispatch 
  417.     IF GENERATING68K THEN
  418.         Macro
  419.         _SndSoundManagerVersion
  420.             dc.w     $203C
  421.             dc.w     $000C
  422.             dc.w     $0008
  423.             dc.w     $A800
  424.         EndM
  425.     ELSE
  426.         IMPORT    SndSoundManagerVersion
  427.     ENDIF
  428.  
  429.     IF GENERATING68K THEN
  430.         Macro
  431.         _SndStartFilePlay
  432.             dc.w     $203C
  433.             dc.w     $0D00
  434.             dc.w     $0008
  435.             dc.w     $A800
  436.         EndM
  437.     ELSE
  438.         IMPORT    SndStartFilePlay
  439.     ENDIF
  440.  
  441.     IF GENERATING68K THEN
  442.         Macro
  443.         _SndPauseFilePlay
  444.             dc.w     $203C
  445.             dc.w     $0204
  446.             dc.w     $0008
  447.             dc.w     $A800
  448.         EndM
  449.     ELSE
  450.         IMPORT    SndPauseFilePlay
  451.     ENDIF
  452.  
  453.     IF GENERATING68K THEN
  454.         Macro
  455.         _SndStopFilePlay
  456.             dc.w     $203C
  457.             dc.w     $0308
  458.             dc.w     $0008
  459.             dc.w     $A800
  460.         EndM
  461.     ELSE
  462.         IMPORT    SndStopFilePlay
  463.     ENDIF
  464.  
  465.     IF GENERATING68K THEN
  466.         Macro
  467.         _SndChannelStatus
  468.             dc.w     $203C
  469.             dc.w     $0010
  470.             dc.w     $0008
  471.             dc.w     $A800
  472.         EndM
  473.     ELSE
  474.         IMPORT    SndChannelStatus
  475.     ENDIF
  476.  
  477.     IF GENERATING68K THEN
  478.         Macro
  479.         _SndManagerStatus
  480.             dc.w     $203C
  481.             dc.w     $0014
  482.             dc.w     $0008
  483.             dc.w     $A800
  484.         EndM
  485.     ELSE
  486.         IMPORT    SndManagerStatus
  487.     ENDIF
  488.  
  489.     IF GENERATING68K THEN
  490.         Macro
  491.         _SndGetSysBeepState
  492.             dc.w     $203C
  493.             dc.w     $0018
  494.             dc.w     $0008
  495.             dc.w     $A800
  496.         EndM
  497.     ELSE
  498.         IMPORT    SndGetSysBeepState
  499.     ENDIF
  500.  
  501.     IF GENERATING68K THEN
  502.         Macro
  503.         _SndSetSysBeepState
  504.             dc.w     $203C
  505.             dc.w     $001C
  506.             dc.w     $0008
  507.             dc.w     $A800
  508.         EndM
  509.     ELSE
  510.         IMPORT    SndSetSysBeepState
  511.     ENDIF
  512.  
  513.     IF GENERATING68K THEN
  514.         Macro
  515.         _SndPlayDoubleBuffer
  516.             dc.w     $203C
  517.             dc.w     $0020
  518.             dc.w     $0008
  519.             dc.w     $A800
  520.         EndM
  521.     ELSE
  522.         IMPORT    SndPlayDoubleBuffer
  523.     ENDIF
  524.  
  525. ; MACE compression routines 
  526.     IF GENERATING68K THEN
  527.         Macro
  528.         _MACEVersion
  529.             dc.w     $203C
  530.             dc.w     $0000
  531.             dc.w     $0010
  532.             dc.w     $A800
  533.         EndM
  534.     ELSE
  535.         IMPORT    MACEVersion
  536.     ENDIF
  537.  
  538.     IF GENERATING68K THEN
  539.         Macro
  540.         _Comp3to1
  541.             dc.w     $203C
  542.             dc.w     $0004
  543.             dc.w     $0010
  544.             dc.w     $A800
  545.         EndM
  546.     ELSE
  547.         IMPORT    Comp3to1
  548.     ENDIF
  549.  
  550.     IF GENERATING68K THEN
  551.         Macro
  552.         _Exp1to3
  553.             dc.w     $203C
  554.             dc.w     $0008
  555.             dc.w     $0010
  556.             dc.w     $A800
  557.         EndM
  558.     ELSE
  559.         IMPORT    Exp1to3
  560.     ENDIF
  561.  
  562.     IF GENERATING68K THEN
  563.         Macro
  564.         _Comp6to1
  565.             dc.w     $203C
  566.             dc.w     $000C
  567.             dc.w     $0010
  568.             dc.w     $A800
  569.         EndM
  570.     ELSE
  571.         IMPORT    Comp6to1
  572.     ENDIF
  573.  
  574.     IF GENERATING68K THEN
  575.         Macro
  576.         _Exp1to6
  577.             dc.w     $203C
  578.             dc.w     $0010
  579.             dc.w     $0010
  580.             dc.w     $A800
  581.         EndM
  582.     ELSE
  583.         IMPORT    Exp1to6
  584.     ENDIF
  585.  
  586. ; Sound Manager 3.0 and later calls 
  587.     IF GENERATING68K THEN
  588.         Macro
  589.         _GetSysBeepVolume
  590.             dc.w     $203C
  591.             dc.w     $0224
  592.             dc.w     $0018
  593.             dc.w     $A800
  594.         EndM
  595.     ELSE
  596.         IMPORT    GetSysBeepVolume
  597.     ENDIF
  598.  
  599.     IF GENERATING68K THEN
  600.         Macro
  601.         _SetSysBeepVolume
  602.             dc.w     $203C
  603.             dc.w     $0228
  604.             dc.w     $0018
  605.             dc.w     $A800
  606.         EndM
  607.     ELSE
  608.         IMPORT    SetSysBeepVolume
  609.     ENDIF
  610.  
  611.     IF GENERATING68K THEN
  612.         Macro
  613.         _GetDefaultOutputVolume
  614.             dc.w     $203C
  615.             dc.w     $022C
  616.             dc.w     $0018
  617.             dc.w     $A800
  618.         EndM
  619.     ELSE
  620.         IMPORT    GetDefaultOutputVolume
  621.     ENDIF
  622.  
  623.     IF GENERATING68K THEN
  624.         Macro
  625.         _SetDefaultOutputVolume
  626.             dc.w     $203C
  627.             dc.w     $0230
  628.             dc.w     $0018
  629.             dc.w     $A800
  630.         EndM
  631.     ELSE
  632.         IMPORT    SetDefaultOutputVolume
  633.     ENDIF
  634.  
  635.     IF GENERATING68K THEN
  636.         Macro
  637.         _GetSoundHeaderOffset
  638.             dc.w     $203C
  639.             dc.w     $0404
  640.             dc.w     $0018
  641.             dc.w     $A800
  642.         EndM
  643.     ELSE
  644.         IMPORT    GetSoundHeaderOffset
  645.     ENDIF
  646.  
  647.     IF GENERATING68K THEN
  648.         Macro
  649.         _UnsignedFixedMulDiv
  650.             dc.w     $203C
  651.             dc.w     $060C
  652.             dc.w     $0018
  653.             dc.w     $A800
  654.         EndM
  655.     ELSE
  656.         IMPORT    UnsignedFixedMulDiv
  657.     ENDIF
  658.  
  659.     IF GENERATING68K THEN
  660.         Macro
  661.         _GetCompressionInfo
  662.             dc.w     $203C
  663.             dc.w     $0710
  664.             dc.w     $0018
  665.             dc.w     $A800
  666.         EndM
  667.     ELSE
  668.         IMPORT    GetCompressionInfo
  669.     ENDIF
  670.  
  671.     IF GENERATING68K THEN
  672.         Macro
  673.         _SetSoundPreference
  674.             dc.w     $203C
  675.             dc.w     $0634
  676.             dc.w     $0018
  677.             dc.w     $A800
  678.         EndM
  679.     ELSE
  680.         IMPORT    SetSoundPreference
  681.     ENDIF
  682.  
  683.     IF GENERATING68K THEN
  684.         Macro
  685.         _GetSoundPreference
  686.             dc.w     $203C
  687.             dc.w     $0638
  688.             dc.w     $0018
  689.             dc.w     $A800
  690.         EndM
  691.     ELSE
  692.         IMPORT    GetSoundPreference
  693.     ENDIF
  694.  
  695.     ENDIF ; __SOUND__
  696.